100 REM THIS PROGRAM PLAYS BATNUM
110 '
120 LET N = 20 + INT(80*RND)
130 LET K = 5 + INT(10*RND)
140 PRINT "LEGAL MOVES ARE:"
150 PRINT "TAKE AWAY 1 THROUGH "K
160 PRINT "LAST PERSON TO MOVE LOOSES."
170 PRINT
180 PRINT "THE INITIAL NUMBER IS"N
190 PRINT
200 '
210 REM OPPONANTS MOVE,
220 PRINT "YOUR MOVE ";
230 INPUT X
240 IF X > K THEN 270
250 IF X < 1 THEN 270
260 IF X <= N THEN 310
270 PRINT "ILLEGAL MOVE."
280 PRINT
290 GOTO 220
300 '
310 REM TEST FOR WIN.
320 LET N = N - X
330 IF N > 0 THEN 410
340 PRINT "I WIN***"
350 PRINT
360 PRINT
370 PRINT "NEW GAME."
380 PRINT
390 GOTO 120
400 '
410 REM MACHINE'S MOVE
420 LET Q = INT ((N-1)/(K+1))
430 LET Y = N - 1 - Q*(K+1)
440 IF Y = 0 THEN 530
450 LET N = N - Y
460 PRINT "MY MOVE IS "Y
470 PRINT
480 IF N = 0 THEN 600
490 PRINT "NEW TOTAL IS "N
500 PRINT
510 GOTO 210
520 '
530 REM MAKE RANDOM MOVE
540 IF N > 1 THEN 570
550 LET Y = 1
560 GOTO 450
570 LET Y = 1 + INT(K*RND)
580 GOTO 450
590 '
600 REM MACHINE LOST.
610 PRINT "YOU WIN***"
620 GOTO 350
630 END
